Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / MeshChatX.git / files / tests / backend / test_propagation_sync_cancel.py

Displaying Raw • Download


tests/backend/test_propagation_sync_cancel.py 7eea421940d2baf28e6476c2736f889f5f3657a4 (7eea4219) Text, 3.31 KB

T8b949e# SPDX-License-Identifier: 0BSD

Tff7b72import T7ee787asyncio
Tff7b72import T7ee787threading
Tff7b72from T7ee787unittestT7ee787.T7ee787mock Tff7b72import Te6edf3MagicMockTb4b4b4, Te6edf3patch

Tff7b72import T7ee787LXMF
Tff7b72import T7ee787pytest

Tff7b72from T7ee787meshchatxT7ee787.T7ee787meshchat Tff7b72import Te6edf3ReticulumMeshChat

Te6edf3PR_IDLE Tff7b72= Te6edf3LXMFTff7b72.Td2a8ffLXMRouterTff7b72.Td2a8ffPR_IDLE
Te6edf3PR_LINK_ESTABLISHING Tff7b72= Te6edf3LXMFTff7b72.Td2a8ffLXMRouterTff7b72.Td2a8ffPR_LINK_ESTABLISHING
Te6edf3PR_PATH_REQUESTED Tff7b72= Te6edf3LXMFTff7b72.Td2a8ffLXMRouterTff7b72.Td2a8ffPR_PATH_REQUESTED


Tf0883e@pytestTff7b72.Td2a8ffmarkTff7b72.Td2a8ffasyncio
Tff7b72async Tff7b72def Td2a8fftest_request_propagation_node_messages_handles_eof_errorTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3app Tff7b72= Te6edf3ReticulumMeshChatTff7b72.Td2a8ff__new__Tb4b4b4(Te6edf3ReticulumMeshChatTb4b4b4)
Te6edf3ctx Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3router Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3routerTff7b72.Td2a8ffPR_IDLE Tff7b72= Te6edf3PR_IDLE
Te6edf3routerTff7b72.Td2a8ffpropagation_transfer_state Tff7b72= Te6edf3PR_LINK_ESTABLISHING
Te6edf3routerTff7b72.Td2a8ffrequest_messages_from_propagation_nodeTff7b72.Td2a8ffside_effect Tff7b72= Tf85149EOFErrorTb4b4b4(Tb4b4b4)
Te6edf3ctxTff7b72.Td2a8ffmessage_router Tff7b72= Te6edf3router
Te6edf3ctxTff7b72.Td2a8ffidentity Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)

Tff7b72with Te6edf3patchTff7b72.Td2a8ffobjectTb4b4b4(Te6edf3appTb4b4b4, Ta5d6ff"Ta5d6ffsend_config_to_websocket_clientsTa5d6ff"Tb4b4b4, Te6edf3return_valueTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72await Te6edf3appTff7b72.Td2a8ff_request_propagation_node_messagesTb4b4b4(Te6edf3contextTff7b72=Te6edf3ctxTb4b4b4)

Tff7b72assert Te6edf3routerTff7b72.Td2a8ffpropagation_transfer_state Tff7b72== Te6edf3PR_IDLE
Tff7b72assert Te6edf3routerTff7b72.Td2a8ffpropagation_transfer_progress Tff7b72== T79c0ff0.0


Tff7b72def Td2a8fftest_stop_propagation_node_sync_forces_idle_when_cancel_leaves_active_stateTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3app Tff7b72= Te6edf3ReticulumMeshChatTff7b72.Td2a8ff__new__Tb4b4b4(Te6edf3ReticulumMeshChatTb4b4b4)
Te6edf3ctx Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3router Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3routerTff7b72.Td2a8ffPR_IDLE Tff7b72= Te6edf3PR_IDLE
Te6edf3routerTff7b72.Td2a8ffPR_PATH_REQUESTED Tff7b72= Te6edf3PR_PATH_REQUESTED
Te6edf3routerTff7b72.Td2a8ffPR_LINK_ESTABLISHING Tff7b72= Te6edf3PR_LINK_ESTABLISHING
Te6edf3routerTff7b72.Td2a8ffPR_LINK_ESTABLISHED Tff7b72= Te6edf3LXMFTff7b72.Td2a8ffLXMRouterTff7b72.Td2a8ffPR_LINK_ESTABLISHED
Te6edf3routerTff7b72.Td2a8ffPR_REQUEST_SENT Tff7b72= Te6edf3LXMFTff7b72.Td2a8ffLXMRouterTff7b72.Td2a8ffPR_REQUEST_SENT
Te6edf3routerTff7b72.Td2a8ffPR_RECEIVING Tff7b72= Te6edf3LXMFTff7b72.Td2a8ffLXMRouterTff7b72.Td2a8ffPR_RECEIVING
Te6edf3routerTff7b72.Td2a8ffPR_RESPONSE_RECEIVED Tff7b72= Te6edf3LXMFTff7b72.Td2a8ffLXMRouterTff7b72.Td2a8ffPR_RESPONSE_RECEIVED
Te6edf3routerTff7b72.Td2a8ffpropagation_transfer_state Tff7b72= Te6edf3PR_PATH_REQUESTED
Te6edf3ctxTff7b72.Td2a8ffmessage_router Tff7b72= Te6edf3router

Te6edf3appTff7b72.Td2a8ffstop_propagation_node_syncTb4b4b4(Te6edf3contextTff7b72=Te6edf3ctxTb4b4b4)

Te6edf3routerTff7b72.Td2a8ffcancel_propagation_node_requestsTff7b72.Td2a8ffassert_called_onceTb4b4b4(Tb4b4b4)
Tff7b72assert Te6edf3routerTff7b72.Td2a8ffpropagation_transfer_state Tff7b72== Te6edf3PR_IDLE
Tff7b72assert Te6edf3routerTff7b72.Td2a8ffpropagation_transfer_progress Tff7b72== T79c0ff0.0


Tf0883e@pytestTff7b72.Td2a8ffmarkTff7b72.Td2a8ffasyncio
Tff7b72async Tff7b72def Td2a8fftest_sync_propagation_nodes_returns_before_request_thread_finishesTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3app Tff7b72= Te6edf3ReticulumMeshChatTff7b72.Td2a8ff__new__Tb4b4b4(Te6edf3ReticulumMeshChatTb4b4b4)
Te6edf3ctx Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3router Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3routerTff7b72.Td2a8ffPR_IDLE Tff7b72= Te6edf3PR_IDLE
Te6edf3routerTff7b72.Td2a8ffPR_COMPLETE Tff7b72= Te6edf3LXMFTff7b72.Td2a8ffLXMRouterTff7b72.Td2a8ffPR_COMPLETE
Te6edf3routerTff7b72.Td2a8ffpropagation_transfer_state Tff7b72= Te6edf3PR_IDLE
Te6edf3routerTff7b72.Td2a8ffget_outbound_propagation_nodeTff7b72.Td2a8ffreturn_value Tff7b72= Ta5d6ffbTa5d6ff"Tffea00\x22Ta5d6ff" Tff7b72* T79c0ff16
Te6edf3routerTff7b72.Td2a8ffpropagation_destination Tff7b72= Te6edf3MagicMockTb4b4b4(Tffa657hashTff7b72=Ta5d6ffbTa5d6ff"Tffea00\x11Ta5d6ff" Tff7b72* T79c0ff16Tb4b4b4)
Te6edf3ctxTff7b72.Td2a8ffmessage_router Tff7b72= Te6edf3router
Te6edf3ctxTff7b72.Td2a8ffidentity Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3ctxTff7b72.Td2a8ffconfig Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3ctxTff7b72.Td2a8ffdatabase Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3ctxTff7b72.Td2a8ffdatabaseTff7b72.Td2a8ffmessagesTff7b72.Td2a8ffcount_lxmf_messagesTff7b72.Td2a8ffreturn_value Tff7b72= T79c0ff0
Te6edf3ctxTff7b72.Td2a8ffdatabaseTff7b72.Td2a8ffmessagesTff7b72.Td2a8ffcount_lxmf_messages_by_stateTff7b72.Td2a8ffreturn_value Tff7b72= T79c0ff0

Te6edf3request_started Tff7b72= Te6edf3threadingTff7b72.Td2a8ffEventTb4b4b4(Tb4b4b4)
Te6edf3request_finished Tff7b72= Te6edf3threadingTff7b72.Td2a8ffEventTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffslow_requestTb4b4b4(Te6edf3_identityTb4b4b4)Tb4b4b4:
Te6edf3request_startedTff7b72.Td2a8ffsetTb4b4b4(Tb4b4b4)
Te6edf3request_finishedTff7b72.Td2a8ffwaitTb4b4b4(Te6edf3timeoutTff7b72=T79c0ff5.0Tb4b4b4)

Te6edf3routerTff7b72.Td2a8ffrequest_messages_from_propagation_nodeTff7b72.Td2a8ffside_effect Tff7b72= Te6edf3slow_request

Tff7b72with Tb4b4b4(
Te6edf3patchTff7b72.Td2a8ffobjectTb4b4b4(Te6edf3appTb4b4b4, Ta5d6ff"Ta5d6ff_begin_propagation_sync_metricsTa5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3patchTff7b72.Td2a8ffobjectTb4b4b4(Te6edf3appTb4b4b4, Ta5d6ff"Ta5d6ffsend_config_to_websocket_clientsTa5d6ff"Tb4b4b4, Te6edf3return_valueTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4,
Tb4b4b4)Tb4b4b4:
Tff7b72await Te6edf3appTff7b72.Td2a8ffsync_propagation_nodesTb4b4b4(Te6edf3contextTff7b72=Te6edf3ctxTb4b4b4, Te6edf3forceTff7b72=Tff7b72FalseTb4b4b4)
Tff7b72await Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0.05Tb4b4b4)
Tff7b72assert Te6edf3request_startedTff7b72.Td2a8ffis_setTb4b4b4(Tb4b4b4)
Tff7b72assert Tff7b72not Te6edf3request_finishedTff7b72.Td2a8ffis_setTb4b4b4(Tb4b4b4)

Te6edf3request_finishedTff7b72.Td2a8ffsetTb4b4b4(Tb4b4b4)
Tff7b72await Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0.05Tb4b4b4)


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────